package com.wolfalpha.utron.service;

import com.wolfalpha.utron.bean.ItemProject;
import com.wolfalpha.utron.bean.ItemProjectComment;
import com.wolfalpha.utron.bean.Project;
import com.wolfalpha.utron.bean.UserBaseInfo;

import java.util.List;

/**
 * 项目操作服务类
 * <p/>
 * Created by luodon on 15/8/20.
 */
public interface ProjectService {

    /**
     * 获取创意列表
     *
     * @param page
     * @param order 0:时间；1:热度；2:方向
     * @param dirs  order=2时可用
     * @return
     */
    public List<ItemProject> getList(int page, int order, List<Integer> dirs);


    /**
     * 获取我的项目列表
     *
     * @param page
     * @return
     */
    public List<ItemProject> getMyList(int userId, int page);


    /**
     * 获取创意ID
     *
     * @param pId
     * @return
     */
    public Project getDetail(int pId);


    /**
     * 点赞
     *
     * @param pId
     * @return
     */
    public boolean praise(int pId);

    /**
     * 评论
     *
     * @param pId
     * @param content
     * @return
     */
    public boolean doComment(int pId, String content, int toId);

    /**
     * 愿意加入讨论组
     *
     * @param pId
     * @return
     */
    public boolean doWillJoin(int pId);

    /**
     * 删除创意
     *
     * @param pId
     * @return
     */
    public boolean delete(int pId);

    /**
     * 发布项目
     *
     * @param name
     * @param dir
     * @param location
     * @param progress
     * @param teamer
     * @param intro
     * @param detail
     * @param logo
     * @param calls
     * @param owner
     * @return
     */
    public boolean publish(String name, int dir, String location, String progress, String teamer, String intro, String detail, String logo, String calls, int owner);


    /**
     * 获取项目的关注用户
     *
     * @param pId
     * @return
     */
    public List<UserBaseInfo> getAttentions(int pId);


    /**
     * 关注项目
     *
     * @param pId
     * @return
     */
    public boolean doAttention(int pId, boolean status);


    /**
     * 检测用户是否关注
     *
     * @param pId
     * @return
     */
    public boolean checkAttention(int pId);

    /**
     * 获取项目的评论
     *
     * @param pId
     * @return
     */
    public List<ItemProjectComment> getComments(int pId, int page, int fId);


}
